/**
 * 
 */
package model.humanbody

import model.agent.AgentInterface
import model.agent.AgentVariableInterface

/**
 * @author liweicheng
 *
 */

interface BodyInterface {

	public void addVariable(AgentVariableInterface p)
	//public void removevariable(String name)
	
	public void addOrgan(AgentInterface organ)
	//public void removeOrgan(String name)
	
	
	/**
	 * 对“属性”设置值，值为一个整数。如：setCondition("心气虚",1)。
	 * 输入的值如果低于0或者超过上限（上限由数据源定义），则会自动设为0或者上限
	 * 由于不指定主体，因而会从body的属性开始搜索，结束之后搜索子主体的属性
	 * @param variable 属性的中文名字符串
	 * @param value 要设置的值
	 */
	public void setCondition(String variable,int value)
	

	/**
	 * 获得“脏器.属性”的值。如：getCondition("心气虚")
	 * 由于不指定主体，因而会从body的属性开始搜索，结束之后搜索子主体的属性
	 * @param variable 属性的中文名字符串
	 * @return “脏器-属性”的值，整数
	 */
	public int getCondition(String variable)
	
	
	/**
	 * 模型重置，所有值归零。
	 */
	public void reset()

	
	/**
	 * 获得人体的所有状态变量
	 * @return 表示状态变量的树状HashMap
	 */
	public HashMap getStatus()
	
	public AgentInterface searchVariableOnAgent(String name)
	public AgentVariableInterface searchVariable(String name)
	
}
